/* 
 * File:   Process.h
 * Author: James
 *
 * Created on November 5, 2010, 9:49 PM
 */

#ifndef PROCESS_H
#define	PROCESS_H

#include <iostream>
using namespace std;

class Process {
public:
    Process();
    Process(int pid, int bst, int arr, int pri, int dl, int io);
    Process(const Process& orig);
    virtual ~Process();

    // ease of use method do decrement time remaining
    Process operator--(void);
    void tick(void);
    // initializes components to the int[] of parsed values
    void initialize(int*);
    
    void setLastExe(int);
    void setIOCompletion(int);
    
    bool isDone(void);
    int getID(void);
    int getArrive(void);
    int getBurst(void);
    int getRemaining(void);
    int getLastExe(void);
    int getDeadline(void);
    int getIO(void);
    int getIOCompletion(void);
    int getPriority(void);

private:

    // class vars
    int p_id, arrive, burst, remaining, last_exe,
        io_time, io_completion, priority, deadline;
};

#endif	/* PROCESS_H */

